In general, the Transmission Control Protocol (TCP) is widely used for data communications over the Internet. A TCP sender maintains two variables at any point in time: 1) a flow control window (denoted “FWND”) set by the TCP receiver and 2) a congestion control window (denoted “CWND”) calculated by the sender based on acknowledgments and packet drops in the network path between the TCP sender and the TCP receiver. The TCP sender computes an active window size (denoted as WND) at any point in time by selecting the minimum of the flow control window and the congestion control window (WND =min{FWND,CWND}). The TCP sender sends WND packets within each round trip time (RTT). In accordance with existing TCP versions, the flow control window is supposed to be based on an estimation of the available bandwidth and RTT in the network for the TCP connection. Disadvantageously, since the bandwidth and RTT parameters continuously fluctuate in time, the TCP sender often sends more data than the network can support, thereby resulting in packet drops. The packet drops cause TCP to substantially reduce WND (i.e., by half), thereby reducing the transmission rate to a rate considerably less than the network can support.
In general, token bucket based policing is typically used to enforce service level agreements. If a customer agrees to pay for transmitting at a particular traffic rate the network operator providing delivery of the traffic ensures that the customer does not exceed the peak information rate (PIR). The PIR is a strict limit that is enforced by the network operator using a policing function. In particular, the incoming information rate is monitored. If the incoming information rate exceeds the PIR the additional packets above the PIR are dropped. In other words, as transmissions below the PIR are successful the WND is increased until the rate associated with the WND reaches the strict policing limit. Upon reaching the strict policing limit packets begin to be dropped. The packet drops cause TCP to substantially reduce the WND (i.e., by half for every drop), thereby causing a substantial reduction in the transmission rate. Since this process typically repeats continuously, TCP connections are unable to transmit at a rate equal to the PIR. In other words, the customer is paying for connections that transmit at the agreed PIR, the network operator provides enough bandwidth to support the agreed PIR, however, due to existing TCP dynamics the agreed PIR is never achieved. A current proposed solution is use of large bucket sizes to admit bursts of data; however, admission of such large bursts of data into the network requires extensive, expensive buffer space to accommodate the large data bursts.